home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1997 December / PC Pro December 1997 CD-Rom coverdisc.iso / symantec / dbAnywh / JAVA.BIN / CLASSES.ZIP / sun / tools / tree / DeclarationStatement.class (.txt) < prev    next >
Encoding:
Java Class File  |  1996-12-14  |  2.5 KB  |  85 lines

  1. package sun.tools.tree;
  2.  
  3. import java.io.PrintStream;
  4. import java.util.Hashtable;
  5. import sun.tools.asm.Assembler;
  6. import sun.tools.java.ClassNotFound;
  7. import sun.tools.java.Constants;
  8. import sun.tools.java.Environment;
  9. import sun.tools.java.Type;
  10.  
  11. public class DeclarationStatement extends Statement {
  12.    int mod;
  13.    Expression type;
  14.    Statement[] args;
  15.  
  16.    public DeclarationStatement(int var1, int var2, Expression var3, Statement[] var4) {
  17.       super(107, var1);
  18.       this.mod = var2;
  19.       this.type = var3;
  20.       this.args = var4;
  21.    }
  22.  
  23.    long check(Environment var1, Context var2, long var3, Hashtable var5) {
  24.       try {
  25.          var3 = ((Statement)this).reach(var1, var3);
  26.          Type var6 = this.type.toType(var1, var2);
  27.          var1.resolve(super.where, var2.field.getClassDefinition(), var6);
  28.  
  29.          for(int var7 = 0; var7 < this.args.length; ++var7) {
  30.             var3 = this.args[var7].checkDeclaration(var1, var2, var3, this.mod, var6, var5);
  31.          }
  32.       } catch (ClassNotFound var8) {
  33.          var1.error(super.where, "class.not.found", var8.name, Constants.opNames[super.op]);
  34.       }
  35.  
  36.       return var3;
  37.    }
  38.  
  39.    public Statement inline(Environment var1, Context var2) {
  40.       int var3 = 0;
  41.  
  42.       for(int var4 = 0; var4 < this.args.length; ++var4) {
  43.          if ((this.args[var4] = this.args[var4].inline(var1, var2)) != null) {
  44.             ++var3;
  45.          }
  46.       }
  47.  
  48.       if (var3 == 0) {
  49.          return null;
  50.       } else {
  51.          return this;
  52.       }
  53.    }
  54.  
  55.    public void code(Environment var1, Context var2, Assembler var3) {
  56.       for(int var4 = 0; var4 < this.args.length; ++var4) {
  57.          if (this.args[var4] != null) {
  58.             this.args[var4].code(var1, var2, var3);
  59.          }
  60.       }
  61.  
  62.    }
  63.  
  64.    public void print(PrintStream var1, int var2) {
  65.       var1.print("declare ");
  66.       super.print(var1, var2);
  67.       this.type.print(var1);
  68.       var1.print(" ");
  69.  
  70.       for(int var3 = 0; var3 < this.args.length; ++var3) {
  71.          if (var3 > 0) {
  72.             var1.print(", ");
  73.          }
  74.  
  75.          if (this.args[var3] != null) {
  76.             this.args[var3].print(var1);
  77.          } else {
  78.             var1.print("<empty>");
  79.          }
  80.       }
  81.  
  82.       var1.print(";");
  83.    }
  84. }
  85.